1 /* 2 3 Boost Software License - Version 1.0 - August 17th, 2003 4 5 Permission is hereby granted, free of charge, to any person or organization 6 obtaining a copy of the software and accompanying documentation covered by 7 this license (the "Software") to use, reproduce, display, distribute, 8 execute, and transmit the Software, and to prepare derivative works of the 9 Software, and to permit third-parties to whom the Software is furnished to 10 do so, all subject to the following: 11 12 The copyright notices in the Software and this entire statement, including 13 the above license grant, this restriction and the following disclaimer, 14 must be included in all copies of the Software, in whole or in part, and 15 all derivative works of the Software, unless such copies or derivative 16 works are solely in the form of machine-executable object code generated by 17 a source language processor. 18 19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 DEALINGS IN THE SOFTWARE. 26 27 */ 28 29 module derelict.purple.media; 30 31 import derelict.glib.gtypes; 32 import derelict.glib.glibconfig; 33 import derelict.glib.glist; 34 import derelict.purple.account; 35 import derelict.purple.enum_types; 36 37 extern (C): 38 39 alias _PurpleMediaCodec PurpleMediaCodec; 40 41 struct _PurpleMediaCodec; 42 43 44 alias _PurpleMedia PurpleMedia; 45 46 struct _PurpleMediaManager; 47 48 49 struct _PurpleMedia; 50 51 52 version(Derelict_Link_Static) 53 { 54 extern( C ) nothrow 55 { 56 GType purple_media_get_type(); 57 GList* purple_media_get_session_ids(PurpleMedia* media); 58 PurpleAccount* purple_media_get_account(PurpleMedia* media); 59 gpointer purple_media_get_prpl_data(PurpleMedia* media); 60 void purple_media_set_prpl_data(PurpleMedia* media, gpointer prpl_data); 61 void purple_media_error(PurpleMedia* media, const(gchar)* error, ...); 62 void purple_media_end(PurpleMedia* media, const(gchar)* session_id, const(gchar)* participant); 63 void purple_media_stream_info(PurpleMedia* media, PurpleMediaInfoType type, const(gchar)* session_id, const(gchar)* participant, gboolean local); 64 void purple_media_set_params(PurpleMedia* media, guint num_params, GParameter* params); 65 const(gchar*)* purple_media_get_available_params(PurpleMedia* media); 66 gboolean purple_media_param_is_supported(PurpleMedia* media, const(gchar)* param); 67 gboolean purple_media_add_stream(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* who, PurpleMediaSessionType type, gboolean initiator, const(gchar)* transmitter, guint num_params, GParameter* params); 68 PurpleMediaSessionType purple_media_get_session_type(PurpleMedia* media, const(gchar)* sess_id); 69 _PurpleMediaManager* purple_media_get_manager(PurpleMedia* media); 70 GList* purple_media_get_codecs(PurpleMedia* media, const(gchar)* sess_id); 71 void purple_media_add_remote_candidates(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant, GList* remote_candidates); 72 GList* purple_media_get_local_candidates(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant); 73 GList* purple_media_get_active_local_candidates(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant); 74 GList* purple_media_get_active_remote_candidates(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant); 75 gboolean purple_media_set_remote_codecs(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant, GList* codecs); 76 gboolean purple_media_candidates_prepared(PurpleMedia* media, const(gchar)* session_id, const(gchar)* participant); 77 gboolean purple_media_set_send_codec(PurpleMedia* media, const(gchar)* sess_id, PurpleMediaCodec* codec); 78 gboolean purple_media_codecs_ready(PurpleMedia* media, const(gchar)* sess_id); 79 gboolean purple_media_is_initiator(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant); 80 gboolean purple_media_accepted(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant); 81 void purple_media_set_input_volume(PurpleMedia* media, const(gchar)* session_id, double level); 82 void purple_media_set_output_volume(PurpleMedia* media, const(gchar)* session_id, const(gchar)* participant, double level); 83 gulong purple_media_set_output_window(PurpleMedia* media, const(gchar)* session_id, const(gchar)* participant, gulong window_id); 84 void purple_media_remove_output_windows(PurpleMedia* media); 85 } 86 } 87 else 88 { 89 extern( C ) nothrow 90 { 91 alias da_purple_media_get_type = GType function(); 92 alias da_purple_media_get_session_ids = GList* function(PurpleMedia* media); 93 alias da_purple_media_get_account = PurpleAccount* function(PurpleMedia* media); 94 alias da_purple_media_get_prpl_data = gpointer function(PurpleMedia* media); 95 alias da_purple_media_set_prpl_data = void function(PurpleMedia* media, gpointer prpl_data); 96 alias da_purple_media_error = void function(PurpleMedia* media, const(gchar)* error, ...); 97 alias da_purple_media_end = void function(PurpleMedia* media, const(gchar)* session_id, const(gchar)* participant); 98 alias da_purple_media_stream_info = void function(PurpleMedia* media, PurpleMediaInfoType type, const(gchar)* session_id, const(gchar)* participant, gboolean local); 99 alias da_purple_media_set_params = void function(PurpleMedia* media, guint num_params, GParameter* params); 100 alias da_purple_media_get_available_params = const(gchar*)* function(PurpleMedia* media); 101 alias da_purple_media_param_is_supported = gboolean function(PurpleMedia* media, const(gchar)* param); 102 alias da_purple_media_add_stream = gboolean function(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* who, PurpleMediaSessionType type, gboolean initiator, const(gchar)* transmitter, guint num_params, GParameter* params); 103 alias da_purple_media_get_session_type = PurpleMediaSessionType function(PurpleMedia* media, const(gchar)* sess_id); 104 alias da_purple_media_get_manager = _PurpleMediaManager* function(PurpleMedia* media); 105 alias da_purple_media_get_codecs = GList* function(PurpleMedia* media, const(gchar)* sess_id); 106 alias da_purple_media_add_remote_candidates = void function(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant, GList* remote_candidates); 107 alias da_purple_media_get_local_candidates = GList* function(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant); 108 alias da_purple_media_get_active_local_candidates = GList* function(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant); 109 alias da_purple_media_get_active_remote_candidates = GList* function(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant); 110 alias da_purple_media_set_remote_codecs = gboolean function(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant, GList* codecs); 111 alias da_purple_media_candidates_prepared = gboolean function(PurpleMedia* media, const(gchar)* session_id, const(gchar)* participant); 112 alias da_purple_media_set_send_codec = gboolean function(PurpleMedia* media, const(gchar)* sess_id, PurpleMediaCodec* codec); 113 alias da_purple_media_codecs_ready = gboolean function(PurpleMedia* media, const(gchar)* sess_id); 114 alias da_purple_media_is_initiator = gboolean function(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant); 115 alias da_purple_media_accepted = gboolean function(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant); 116 alias da_purple_media_set_input_volume = void function(PurpleMedia* media, const(gchar)* session_id, double level); 117 alias da_purple_media_set_output_volume = void function(PurpleMedia* media, const(gchar)* session_id, const(gchar)* participant, double level); 118 alias da_purple_media_set_output_window = gulong function(PurpleMedia* media, const(gchar)* session_id, const(gchar)* participant, gulong window_id); 119 alias da_purple_media_remove_output_windows = void function(PurpleMedia* media); 120 } 121 122 __gshared 123 { 124 da_purple_media_get_type purple_media_get_type; 125 da_purple_media_get_session_ids purple_media_get_session_ids; 126 da_purple_media_get_account purple_media_get_account; 127 da_purple_media_get_prpl_data purple_media_get_prpl_data; 128 da_purple_media_set_prpl_data purple_media_set_prpl_data; 129 da_purple_media_error purple_media_error; 130 da_purple_media_end purple_media_end; 131 da_purple_media_stream_info purple_media_stream_info; 132 da_purple_media_set_params purple_media_set_params; 133 da_purple_media_get_available_params purple_media_get_available_params; 134 da_purple_media_param_is_supported purple_media_param_is_supported; 135 da_purple_media_add_stream purple_media_add_stream; 136 da_purple_media_get_session_type purple_media_get_session_type; 137 da_purple_media_get_manager purple_media_get_manager; 138 da_purple_media_get_codecs purple_media_get_codecs; 139 da_purple_media_add_remote_candidates purple_media_add_remote_candidates; 140 da_purple_media_get_local_candidates purple_media_get_local_candidates; 141 da_purple_media_get_active_local_candidates purple_media_get_active_local_candidates; 142 da_purple_media_get_active_remote_candidates purple_media_get_active_remote_candidates; 143 da_purple_media_set_remote_codecs purple_media_set_remote_codecs; 144 da_purple_media_candidates_prepared purple_media_candidates_prepared; 145 da_purple_media_set_send_codec purple_media_set_send_codec; 146 da_purple_media_codecs_ready purple_media_codecs_ready; 147 da_purple_media_is_initiator purple_media_is_initiator; 148 da_purple_media_accepted purple_media_accepted; 149 da_purple_media_set_input_volume purple_media_set_input_volume; 150 da_purple_media_set_output_volume purple_media_set_output_volume; 151 da_purple_media_set_output_window purple_media_set_output_window; 152 da_purple_media_remove_output_windows purple_media_remove_output_windows; 153 } 154 }